#ifndef __ATOM__
#define __ATOM__

#include <iostream>

enum AtomType
{
	NUMBER_ATOM,
	LITERAL_ATOM,	//	number or literal should be leaf in the tree
	DOT_ATOM		//	dot to connect two elements, should be branch
};

class Atom
{
public:
	AtomType type;
	std::string str;
	int number;

public:
	Atom()
	{
		type = DOT_ATOM;
	}
	Atom(std::string str)
	{
		type = LITERAL_ATOM;
		this->str = str;
	}

	Atom(int number)
	{
		type = NUMBER_ATOM;
		this->number = number;
	}
};

#endif